1. Field of the Invention
The present invention relates to computer systems with multiple processors. More particularly, the invention concerns a method for managing access to a shared resource among two competing processors.
2. Description of the Related Art
Today people are confronted with an astonishing amount of electronic information to manage. Such management involves transmitting, receiving, processing, and storing electronic data. To meet these challenges, many people choose computer systems with multiple processors. These systems can provide significant computing power by using numerous computers, microprocessors, processing threads, or other processing engines. These processors may also be known by terms such as processing units, processing elements, etc.
One recurring challenge to systems with multiple processors involves the sharing of resources among the multiple processors. As one example, digital data storage such as magnetic "hard" disk drive storage is often shared by multiple storage "adapters." Sharing such a resource is challenging because of the difficulties in arbitrating access to the resource. At any given time, which processor should be permitted access to the shared resource? Should other processors be given limited concurrent access? This is further complicated by the need to plan for possible failure of a processor or communications between the processors.
One popular approach to sharing computer resources is called "mutual exclusion," which is often applied at the device level. With this approach, processors access the resource one-at-a-time. While one processor is accessing the resource, all other processors are excluded from that device. Although this approach is attractive in its simplicity, shared computer resources often possess significantly more input/output ("I/O") capability than the processors that manage them. In this case, the full throughput of the shared resource is wasted when it is being used by one processor to the exclusion of the other processors.
In the case of storage resources, the system takes longer to store and retrieve data when the processors are confined by one-at-a-time access rules. This is undesirable because slower data storage and retrieval is usually frustrating to most computer users, and makes a storage system less competitive in the market. Furthermore, slow data access may be intolerable in certain data-critical applications, such as automated teller networks, airline reservation systems, stock brokerage, etc.
Consequently, mutual exclusion and other similar strategies for arbitrating processor access to shared resources are not completely adequate for some applications due to various unsolved problems.